// 模拟实现 lodash中的 curry方法
function getSum(a, b, c) {
    return a + b + c;
}

function curry(func) {
    return function curriedFn(...args) {
        // 如果实参小于形参
        if (args.length < func.length) {
            return function () {
                // 将所有参数合并起来再传递进来  arguments是一个伪数组需要变成一个数组
                return curriedFn(...args.concat(Array.from(arguments)));
            };
        }
        // 实参和形参个数相同或多于，调用 func，返回结果
        return func(...args);
    };
}

const curried = curry(getSum);

console.log(curried(1, 2, 3));
console.log(curried(1, 2)(3));
console.log(curried(1)(2, 3));
